Methods and systems for transmitting and receiving data

ABSTRACT

A method carried out by a network device comprising a plurality of network adapters for transmitting and/or receiving data through a first group of network adapters. Each network adapter of the first group of network adapters is capable of using a plurality of communication technologies for transmitting and/or receiving data. The each network adapter is configured to use a corresponding communication technology for transmitting and/or receiving data. The each network adapter is configured by a configuration corresponding to each network adapter.

TECHNICAL FIELD

The present invention relates in general to the field of computernetworks. More particularly, the present invention relates toconfiguring each network adapter of a group of network adapters to use acommunication technology corresponding to the each network adapter. Eachnetwork adapter uses its corresponding communication technology fortransmitting and/or receiving data.

BACKGROUND ART

Network performance of one wireless technology can be very differentfrom other wireless technologies. For example, the theoretical maximumdata throughput of Long Term Evolution (LTE) is significantly higherthan the theoretical maximum data throughput of Third Generation (3G).Therefore, it is preferred to use LTE when LTE is available. However, itis well known that network quality in wireless communication channelscan be vastly different from one second to another second. Most wirelesscommunication service providers and wireless communication devices allowwireless communication devices to change the use of wirelesstechnologies depending on the network availability, signal strength,signal quality, network capacity and other metrics. It is desirable torestrict a wireless communication device to use one particular wirelesstechnology only, regardless of the network availability, signalstrength, signal quality, network capacity of the particular wirelesstechnology.

It is well-known to those who are skilled in the art that state-of-artwireless communication devices allow the wireless communication devicesto be configured to use one particular wireless technology. However,state-of-art wireless communication devices do not allow using two ormore network adapters to transmit data, receive data and/or communicatewith wireless access networks through the two or more network adapterssimultaneously. Furthermore, state-of-art wireless communication devicesdo not take into the account that each network adapter may be differentand/or the access network that each network adapter connects to may bedifferent.

Furthermore, state-of-art wireless communication devices do not takeinto the account when data belonging to one session are distributedamong a plurality of network adapters, which are using wirelesscommunication technologies. Packet loss or packet drop experienced byone network adapter may materially affect the overall performance of theone session. For example, a wireless communication device may distributedata belonging to a TCP session using a plurality of network adapters.When there is a packet drop experienced in a connection used by anetwork adapter, other data after the dropped data packet may also beconsidered lost or dropped, due to the design of TCP, even if thoseother data have successfully arrived at the other side.

Network adapters may use a default communication technology and choosean access network depending on factors including signal strength, signalquality, network capacity. Alternatively, network adapters choose anaccess network only based on these factors, and there is no defaultcommunication technology. In some cases, based on these factors, themultiple network adapters of a network device use the same accessnetwork, and the disadvantages of this are illustrated in an example.For example, a first network adapter and a second network adapter useLTE technology, and they establish a first and second end-to-endconnection respectively using a first LTE network. The first and secondend-to-end connections are bonded to form an aggregated connection.Firstly, if the performance of the first LTE network is notsatisfactory, for example the packet drop rate is high, the packet droprate is high in both the first and the second end-to-end connections.Therefore, the overall performance of the aggregated end-to-endconnection may be unsatisfactory when the same access network withunsatisfactory performance is used in both individual end-to-endconnections. Secondly, the performance may further be deteriorated dueto interference and sharing of the total bandwidth caused by the twoend-to-end connections using the first LTE network.

DISCLOSURE OF INVENTION Summary of Invention

According to one of the embodiments of the present invention, a networkdevice uses a first group of network adapters to transmit and/or receivethe data. The at least one network adapter is capable of transmittingand/or receiving data using a plurality of communication technologiesand belongs to a first group of network adapters. During transmittingand/or receiving, each of the first group of network adapters isrestricted to use only one of the following communication technologies:Ethernet, IEEE 802.11, Wi-Fi, WiMax, High-Speed Packet Access technology(HSPA), HSPA+, Bluetooth, 3G, Long Term Evolution (LTE), GPRS. EDGE,GSM, CDMA, CDMA2000, W-CDMA, TD-CDMA, TD-SCDMA, WiBro, and UMTS. The atleast one network adapter is configured to achieve this as most networkadapters are by default being configured to transmit data with the bestaccess network or one of access networks that are accessible. As thereare myriads of network adapters from many manufacturers, a configurationto configure a network adapter may be very different from anotherconfiguration to configure another network adapter. According to one ofthe embodiments of the present invention, the at least one networkadapter is configured when an end-to-end connection is established.

In one of the embodiments, when a plurality of network adapters are usedby the network device, the plurality of network adapters are classifiedinto several groups. There is at least one network adapter in a firstgroup. When there are a plurality of network adapters in the firstgroup, the network device transmits data through the plurality ofnetwork adapters in the first group according to one or more datadistribution techniques.

According to one of the embodiments of the present invention, a firstgroup of network adapter(s) is used for transmitting data and a secondgroup of network adapter(s) is used for receiving data. In one variant,a network adapter can belong to both the first group and the secondgroup of network adapters. As a result, the communication technologyused at the network adapter(s) for transmitting data can be the same asor different from the communication technology used by the networkadapter(s) for receiving data. When respective communicationtechnologies are selected for the network adapter(s) used fortransmitting data and for the network adapter(s) used for receivingdata, the respective communication technologies are not changed duringrespective data transmission and data receiving. In one variant, therespective communication technologies can be changed after completion ofrespective data transmission and data receiving.

In one of the embodiments of the present invention, the communicationtechnology corresponding to a network adapter changes to anothercommunication technology when a first condition is satisfied. Forexample, the first condition may be satisfied when an end-to-endconnection is established through the network adapter. Alternatively,the first condition may be satisfied when the network device is beingused at a specific geographical location.

In one of the embodiments, when a network adapter is configured to use afirst communication technology, but cannot connect to an access networkusing the first communication technology, the network device stops usingthe network adapter for transmitting and/or receiving data, even if thenetwork adapter is able to connect to an access connection using asecond communication technology.

In one of the embodiments, a plurality of end-to-end connections areestablished through one or more network adapters, and the plurality ofend-to-end connections are aggregated to form an aggregated end-to-endconnection. Data is then transmitted and/or received through theaggregated end-to-end connection. Each of the network adaptersestablishing an end-to-end connection can use different communicationtechnologies.

DETAILED DESCRIPTION

The ensuing description provides preferred exemplary embodiment(s) andexemplary embodiments only, and is not intended to limit the scope,applicability or configuration of the invention. Rather, the ensuingdescription of the preferred exemplary embodiment(s) and exemplaryembodiments will provide those skilled in the art with an enablingdescription for implementing a preferred exemplary embodiment of theinvention. It is understood that various changes may be made in thefunction and arrangement of elements without departing from the spiritand scope of the invention as set forth in the appended claims.

Also, it is noted that the embodiments may be described as a processwhich is depicted as a flowchart, a flow diagram, a data flow diagram, astructure diagram, or a block diagram. Although a flowchart may describethe operations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be re-arranged. A process is terminated when itsoperations are completed, but could have additional steps not includedin the figure. A process may correspond to a method, a function, aprocedure, a subroutine, a subprogram, etc. When a process correspondsto a function, its termination corresponds to a return of the functionto the calling function or the main function.

Embodiments, or portions thereof, may be embodied in programinstructions operable upon a processing unit for performing functionsand operations as described herein. The program instructions making upthe various embodiments may be stored in a storage medium, such as asecondary storage.

Moreover, as disclosed herein, the term “secondary storage” and “mainmemory” may represent one or more devices for storing data, includingread only memory (ROM), random access memory (RAM), magnetic RAM, corememory, magnetic disk storage mediums, optical storage mediums, flashmemory devices and/or other machine readable mediums for storinginformation. The term “machine readable medium” includes, but is notlimited to portable or fixed storage devices, optical storage devices,wireless channels and various other mediums capable of storing,containing or carrying instruction(s) and/or data. A machine-readablemedium can be realized by virtualization, and can be a virtual machinereadable medium including a virtual machine readable medium in acloud-based instance.

Furthermore, embodiments may be implemented by hardware, software,firmware, middleware, microcode, hardware description languages, or anycombination thereof. When implemented in software, firmware, middlewareor microcode, the program instructions or code segments to perform thenecessary tasks may be stored in a machine readable medium such asstorage medium. A processing unit(s) may perform the necessary tasks. Aprocessing unit(s) can be a CPU, an ASIC semiconductor chip, asemi-conductor chip, a logical unit, a digital processor, an analogprocessor, a FPGA or any processor that is capable of performing logicaland arithmetic functions. A program instruction may represent aprocedure, a function, a subprogram, a program, a routine, a subroutine,a module, a software package, a class, or any combination ofinstructions, data structures, or program statements. A programinstruction may be coupled to another program instruction or a hardwarecircuit by passing and/or receiving information, data, arguments,parameters, or memory contents. Information, arguments, parameters,data, etc. may be passed, forwarded, or transmitted via any suitablemeans including memory sharing, message passing, token passing, networktransmission, etc. A processing unit(s) can be realized byvirtualization, and can be a virtual processing unit(s) including avirtual processing unit in a cloud-based instance.

A network adapter may be implemented by a standalone electroniccomponent or may be integrated with other electronic components. Anetwork adapter may have no network connection or at least one networkconnection depending on the configuration. A network adapter is onlyconnected to one access network. Therefore, there may be more than onenetwork connection being carried by one access network. A networkadapter may be an Ethernet adapter, a frame relay adapter, a fibre opticadapter, a cable adapter, a DSL adapter, a token ring adapter, a serialbus adapter, a universal serial bus (USB) adapter, Firewire adapter.Peripheral Component Interconnect (PCI) adapter, etc. A network adaptermay be housed inside a network device, or may be housed outside thenetwork device.

Embodiments, or portions thereof, may be embodied in a computer datasignal, which may be in any suitable form for communication over atransmission medium such that it is readable for execution by afunctional device (e.g., processing unit) for performing the operationsdescribed herein. The computer data signal may include any binarydigital electronic signal that can propagate over a transmission mediumsuch as electronic network channels, optical fibers, air,electromagnetic media, radio frequency (RF) links, and the like, andthus the data signal may be in the form of an electrical signal, opticalsignal, radio frequency or other wireless communication signal, etc. Thecode segments may, in certain embodiments, be downloaded via computernetworks such as the Internet, an intranet, LAN, MAN, WAN, the PSTN, asatellite communication system, a cable transmission system, and/or thelike.

An access network may carry one or more network protocol data. A accessnetwork may be a wired network or a wireless network. A wired accessnetwork may be implemented using Ethernet, fiber optic, cable, DSL,frame relay, token ring, serial bus, USB, Firewire. PCI, or any materialthat can pass information. A wireless access network may be implementedusing infra-red, High-Speed Packet Access (HSPA), HSPA+. Long TermEvolution (LTE), WiMax. General Packet Radio Service (GPRS). EnhancedData Rates for GSM Evolution (EDGE), Global System for MobileCommunications (GSM), Code Division Multiple Access (CDMA), Wi-Fi, IEEE802.11, Third Generation (3G), CDMA2000. Wideband CDMA (W-CDMA),Time-division-CDMA (TD-CDMA), Time Division Synchronous CDMA (TD-SCDMA),Bluetooth, WiBRO, Universal Mobile Telecommunications System (UMTS) orany other wireless technologies.

FIG. 1 is an illustrative block diagram of a network device, such asnetwork device 101, according to one of the embodiments of the presentinvention. Network device 101 comprises processing unit 102, main memory103, system bus 104, secondary storage 105, and a plurality of networkadapters, namely network adapters 106, 107 and 108. In one variant,among the plurality of network adapters, a first group of networkadapters are selected for transmitting and/or receiving data. The firstgroup of network adapters may comprise one or more network adapters.Processing unit 102 and main memory 103 are connected to each otherdirectly. System bus 104 connects processing unit 102 directly orindirectly to secondary storage 105, and network adapters 106, 107 and108. Using system bus 104 allows network device 101 to have increasedmodularity. System bus 104 couples processing unit 102 to secondarystorage 105, and network adapters 106, 107, and 108. System bus 104 canbe any of several types of bus structures including a memory bus, aperipheral bus, and a local bus using any of a variety of busarchitectures. Secondary storage 105 stores program instructions forexecution by processing unit 102. Secondary storage 105 further storesconfigurations corresponding to each of network adapters 106, 107, and108, and also conditions for selecting the first group of networkadapters among network adapters 106, 107, and 108. Network adapters 106,107 and 108 are capable of using a plurality of communicationtechnologies. However, each of network adapters 106, 107, and 108 arerestricted to using a specific communication technology by aconfiguration according to one of the embodiments. The scope of theinvention is not limited to network device 101 having three networkadapters, such that network device 101 may have one or more networkadapters. Network adapters 106, 107 and 108 specified for illustrationpurposes only.

The plurality of communication technologies, that the network adapters106, 107, and 108 are capable of using, include one or more of Ethernet,IEEE 802.11, Wi-Fi, WiMax, HSPA, HSPA+, Bluetooth, 3G, LTE, GSM. GPRS,EDGE, CDMA, CDMA2000, W-CDMA. TD-CDMA, TD-SCDMA. WiBro, UMTS or thelike. Each of network adapters 106, 107 and 108 can be restricted to useany of the plurality of communication technologies. For example, when anetwork adapter 106 is using IEEE 802.11 technology, it can beconfigured to use only one of IEEE 802.11a, 802.11b, 802.11g, 802.11ac,802.11ad or 802.11n, even though the network adapter is capable of usingall of the technologies. Network adapter 106 can also be configured touse only 802.11n/a or 802.11n/g technology. In another example, whennetwork adapter 107 is using cellular technology, it can be configuredto use only CDMA, even though it is capable of using Wi-Fi, WiMax, HSPA,HSPA+, 3G, LTE, GPRS, EDGE, GSM, CDMA, CDMA2000. W-CDMA, TD-SCDMA,WiBro, and UMTS.

According to one of the embodiments, network device 101 storescorresponding configuration(s) for at least one of network adapters 106,107, and 108 in secondary storage 105. The correspondingconfiguration(s) is/are retrieved by processing unit 102 from secondarystorage 105. Processing unit 102 configures each of the at least one ofnetwork adapter 106, 107, and 108 according to its correspondingconfiguration. Data is transmitted through at least one of networkadapters 106, 107, and 108 according to its correspondingconfiguration(s). In one variant, the user or administrator of networkdevice 101 may manually choose which network adapter(s) should be usedfor transmitting and/or receiving data and configure the chosen networkadapter(s) according to their corresponding configuration(s). Data isthen transmitted through the chosen network adapter(s). Alternatively,processing unit 102 chooses network adapter(s) for transmitting and/orreceiving data based on predefined policies and/or conditions. Theprocess of determining whether a network adapter is chosen or not isillustrated in detail in FIG. 3.

In one variant, the at least one network adapter is further used forreceiving data according to its corresponding configuration.Alternatively, processing unit 102 uses another at least one networkadapter for receiving data and configures the another at least onenetwork adapter according to its corresponding configuration. Hence,network device 101 uses a first group and a second group of networkadapters for transmitting data and receiving data respectively. Anetwork adapter can belong to both groups of network adapters when it isused for both transmitting and receiving data. Therefore, the firstgroup and the second group of network adapters may or may not comprisethe same network adapters. The benefits of having a first group and asecond group of network adapters for transmitting and receiving datarespectively include facilitation of using different communicationtechnologies for transmitting and receiving and may result in asymmetricupload and download speeds. For example, when download performance ismore important than upload performance, a communication technology thatcan provide better performance is used for download, and anothercommunication technology is used for upload.

Configuration corresponding to a network adapter, such as networkadapter 106, is to make network adapter 106 use one specificcommunication technology for transmitting and/or receiving data. It isdesirable to restrict network adapter 106 to use the specificcommunication technology in certain scenarios, because differentcommunication technologies may provide different network performances.The specific communication technology is preferably Long Term Evolution(LTE). It is known to those of ordinary skill in the art that LTEprovides better performance than most other communication technologiesfor wireless access networks in general. For example, the theoreticalpeak speed for download provided by LTE is considerably higher than thatprovided by 3G. Therefore, network adapter 106 is configured to use LTEwhenever there is an accessible and stable LTE network. An accessnetwork is considered to be stable when the signal strength satisfies acertain threshold, because otherwise, the connection may getdisconnected too frequently due to sudden rise in noise or interference.In some scenarios, an access network may become unstable due tobandwidth caps set by the network service provider, bandwidththrottling, rate-limiting, or the like. In one variant, when the LTEnetwork is not available or is not stable, network adapter 106 does notswitch to any other communication technologies and is not used totransmit and/or receive data. The configuration is such, that even whenthe network availability, signal strength, network capacity, or the likeare better for an access network using another communication technology,such as a 3G network, network adapter 106 continues using the LTEnetwork. Therefore, network adapter 106 does not switch betweencommunication technologies frequently. In one variant, if the LTEnetwork becomes unstable, network device 101 stops using network adapter106 and uses another network adapter, such as network adapter 107, fortransmitting and/or receiving data according to the configuration ofnetwork adapter 107.

In one of the embodiments of the present invention, the specificcommunication technology is selected by processing unit 102 based on oneor more criteria including data type, traffic pattern, port number,application, and protocol. For example, data type of data to betransmitted through network adapter 106 can be determined through deeppacket inspection, and based on the data type, a communicationtechnology is specified for network adapter 106. Certain communicationtechnologies may be suitable for certain types of data. For illustrationpurposes, a network adapter may be configured such that when the networkadapter is using port 21 for a FTP session, the network adapter startsusing IEEE 802.11 technology for transmitting and/or receiving databelonging to the FTP session. Alternatively, in another example, when anetwork adapter is using port 80 for video conferencing, the networkadapter's configuration allows it to use LTE technology for transmittingand/or receiving data.

FIG. 2 illustrates a process of configuring a network adapter, such asnetwork adapter 106, according to one of the embodiments. In step 201,configuration corresponding to network adapter 106 is retrieved byprocessing unit 102. The configuration may be retrieved locally fromsecondary storage 105 or remotely from a remote server and is receivedthrough a web interface, an application programming interface (API), acommand line interface or a console. In step 202, processing unit 102determines a corresponding communication technology for network adapter106 according to the corresponding configuration retrieved in step 201.Data is transmitted and/or received through network adapter 106 usingthe corresponding communication technology in step 203. In one variant,network adapter 106 is only used for transmitting data and anothernetwork adapter, such as network adapter 107, is configured according tothe process of FIG. 2 for receiving data. Therefore, in step 203, datais received through network adapter 107, according to its correspondingconfiguration, using a corresponding communication technology.

At least one of network adapters 106, 107, and 108 is configured withits corresponding configuration according to FIG. 2, wherein thecorresponding configuration is stored in secondary storage 105 accordingto one of the embodiments. The communication technology that a networkadapter uses is restricted by the network adapter's correspondingconfiguration. For example, processing unit 102 determines that anetwork adapter 106 has corresponding configuration to use LTEtechnology to transmit and/or receive data in step 202. When networkadapter 106 is configured with the corresponding configuration, thenetwork adapter 106 is restricted to use LTE technology to transmitand/or receive data, even when access networks using other communicationtechnologies are available. A user or administrator of network device101 can configure network adapters 106, 107, and 108 with configurationsaccording to their preference. The user or administrator can accessnetwork device 101 through a connection and input the configuration(s)remotely or locally through a web interface, command line interface,and/or application programming interface (API). Once the configurationis inputted remotely or locally through the web interface, command lineinterface and/or API, the configuration can be stored locally insecondary storage 105 or in a remote server for retrieval by processingunit 102 while configuring network adapters 106, 107, and 108 with theircorresponding configurations.

For illustration purposes, configurations are based on AT commands.Network adapters manufactured by most companies can accept AT commandswhich are used to configure the network adapters to use a specificcommunication technology. However the commands are different fordifferent brands of network adapters.

In one of the embodiments, a modem from ZTE Technologies is used asnetwork adapter 106. When a user or administrator configures networkadapter 106 to use only 3G for transmitting and/or receiving data, theconfiguration is “AT+ZSNT=2,0,0”. Alternatively, when a modem fromSierra Wireless is used as network adapter 106, the configuration forconfiguring network adapter 106 to use only 3G for transmitting and/orreceiving data is “AT!SELRAT=1”.

In another embodiment, the configuration of network adapter 106, whichis a modem from ZTE technologies, for configuring it to use only LTE fortransmitting and/or receiving is “AT+ZSNT=6,0,0”. Alternatively, forexample network adapter 107 is a modem from Sierra Wireless. Theconfiguration used for configuring network adapter 107 to use LTE fortransmitting and/or receiving data, the AT command in the configurationis “AT!SELRAT=6”.

The scope of the embodiments should not be restricted to configurationusing AT commands in the configuration. The user or administrator canset configuration to configure the network adapter(s) according to theconfiguration and according to the brand of the network adapter.

In one of the embodiments, network adapter 106, using Wi-Fi, isconfigured with configuration that restricts network adapter 106 to usea Wi-Fi network with one of IEEE 802.11a, 802.11b, 802.11n, 802.11ac,802.11ad, or 802.11g technology. For example, a user configures networkadapter 106 with its corresponding configuration that restricts it touse only 802.11n technology when the user wants to connect to a Wi-Finetwork. Therefore, even if a first Wi-Fi network using 802.11a isavailable and has better signal strength, network adapter 106 uses asecond Wi-Fi network using 802.11n if the second Wi-Fi network isavailable. If the second Wi-Fi network using 802.11n is not available oris not stable, network adapter 106 uses the first Wi-Fi network using802.11a. In some scenarios, 802.11n technology provides better networkspeed than 802.11a technology. Therefore, it is beneficial to restrictnetwork adapter 106 to use a Wi-Fi network using 802.11n so that itdoesn't switch between different communication technologies frequently,and hence performance deterioration is avoided. Alternatively, when thesecond Wi-Fi network is not available or is unstable, network device 101stops using network adapter 106 for transmitting and/or receiving data,and starts using network adapter 107 for transmitting and/or receivingdata according to the corresponding configuration of network adapter107. Therefore data transmission and/or receiving is not paused tillnetwork adapter 106 connects to the second Wi-Fi network or untilnetwork adapter 106 finds another Wi-Fi network using 802.11ntechnology. In one variant, a configuration file is stored in secondarystorage 105 and is used to configure network adapters 106 and 107 to useone of the IEEE 802.11 protocols.

In another example, when network adapter 106 is configured to use only802.11n/g for transmitting and/or receiving data, the configuration is“#iwpriv ath0 mode 11nght20”, where ath0 is the name of network adapter106. 802.11n/g uses a frequency of 2.4 GHz range. In some scenarios,using the 2.4 GHz range provides better network coverage and is moreeconomically viable. Alternatively, when network adapter 106 isconfigured to use only 802.11n/a for transmitting and/or receiving data,the configuration is “#iwpriv ath0 mode 11naht20”. 802.11n/a uses afrequency of 5 GHz range. In some scenarios, the 5 GHz range provideslesser network interference compared to the 2.4 GHz range because veryfew wireless home or office appliances use the 5 GHz range. However, thenetwork coverage may be less in the 5 GHz range compared to the 2.4 GHzrange.

In one of the embodiments, a mobile phone, a tablet, or a similarhandheld device that is capable of using various wireless communicationtechnologies can be configured to use one specific communicationtechnology only. Mobile phones and tablets are now widely used forapplications requiring internet access through high performance and/orlow cost access networks, and therefore it is desirable to be able toconfigure the mobile phones or tablets to use a specific communicationtechnology only. For example, in one variant, an application isinstalled in a mobile phone for restricting the mobile phone to use aspecific communication technology. For example, a user of the mobilephone uses the application for configuring the mobile phone to use LTEtechnology for transmitting and/or receiving data by clicking on aspecific icon or button. By clicking on another specific icon or button,the user can use the application for configuring the mobile phone to useanother communication technology for transmitting and/or receiving data.Alternatively, the mobile phone can be configured by sending commandsfrom a desktop computer to the mobile phone application. The commandscan be sent to a listener application, via a network connection, or viaa physical cable. The application and the commands used depend, at leastin part, on the operating system of the mobile phone, such as AndroidOS, iOS, Windows OS.

In one of the embodiments, the network adapters are configured accordingto their corresponding configuration during initialization of therespective network adapters. Initialization of a network adapter mayoccur in various stages including powering up network device 101,choosing the network adapter, specifying the port address of the networkadapter, assigning an Internet Protocol (IP) address to the networkadapter and activating the network adapter for transmitting and/orreceiving data. Configuration of the network adapter can be performedduring any of the initialization stages. For illustration purpose, whilenetwork adapter 106 is being initialized, processing unit 102 retrievesconfiguration corresponding to network adapter 106 from secondarystorage 105 and configures network adapter 106 with the correspondingconfiguration. In this case, network adapter 106 is configured even ifthere is no data transfer session going on. In another example, networkadapter 106 is configured when establishing a data transfer session orduring initializing a connection through network adapter 106. i.e.during handshaking. Therefore, network adapter 106 is only configuredwhen network device 101 determines to use network adapter 106 for datatransfer.

Alternatively, the network adapters are configured according to theircorresponding configurations during transmission of data through therespective network adapters. However, configuring during transmission ofdata is not preferred because configuring will be performed before eachdata packet is transmitted, and therefore the change in configurationmight be too frequent. This causes the performance to deteriorate.

Alternatively, the network adapters are configured according to theircorresponding configurations during establishment of end-to-endconnections through the respective network adapters. Before theestablishment of the end-to-end connection(s), the network adapter usesa default communication technology to transmit and/or receive data. Thedefault communication technology can be set by the user or administratorof network device 101. An end-to-end connection is a connection betweennetwork device 101 and another network device. An end-to-end connectionmay include one or more communication links and one or more intermediatenodes. The end-to-end connection can be implemented by using connectionoriented networking technology or connectionless-oriented networkingtechnology. The end-to-end connection can therefore be implemented byusing Transmission Control Protocol (TCP/IP), User Datagram Protocol(UDP/IP), IPSec and/or other Virtual Private Network (VPN) technologies.For example, network device 101 establishes an end-to-end connection,such as a VPN connection, through network adapter 106. When enteringparameters for configuring and establishing the VPN connection, the useror administrator also configures network adapter 106 to use a specificcommunication technology for transmitting and/or receiving data throughthe VPN connection.

In one variant, multiple end-to-end connections established through oneor more network adapters are bonded together to form an aggregatedend-to-end connection. When multiple end-to-end connections areestablished through more than one network adapters of network device101, the more than one network adapters may use the same or differentcommunication technologies for transmitting and/or receiving data.

In one of the embodiments, the data may comprise packets or framescarrying information. Alternatively, the data comprises encapsulatingpackets that encapsulate packets or frames carrying information. Theencapsulating packets encapsulate the packets or frames before theencapsulating packets are transmitted through end-to-end connection(s)established through at least one of network adapters 106, 107, and 108.The packets or frames may originate from network device 101 and/or fromhost(s) and/or node(s) connecting to network device 101. The end-to-endconnections established can be bonded to form an aggregated end-to-endconnection. Using an aggregated end-to-end connection may result inhigher bandwidth which is a combined bandwidth of the individualend-to-end connections. The aggregated end-to-end connection isperceived as one end-to-end connection by sessions or applications thatare using it. Alternatively, the data is comprised in encapsulatingpackets for various other reasons such as data security or data routing.

In one of the embodiments, when multiple end-to-end connections, forexample, a first, second and third end-to-end connections, areestablished through network adapters 106, 107, and 108 respectively,network adapters 106, 107, and 108 are configured to use differentcommunication technologies. The first, second and third end-to-endconnections are bonded to form an aggregated end-to-end connection. Whenthe communication technology used through each of network adapters 106,107, and 108 is different, the overall performance of the aggregatedend-to-end connection may not significantly deteriorate when performanceof one of the end-to-end connections becomes unsatisfactory. Forexample, network adapter 106 is configured to use LTE and networkadapter 107 is configured to use 3G. Thus, the interference between thefirst end-to-end connection and the second end-to-end connection may bereduced and dedicated bandwidth for each end-to-end connection may behigher, compared to a scenario where both network adapters 106 and 107use the same communication technology according to prior art. The datatransfer session through the aggregated end-to-end connection issmoother than that in prior art because, if the performance of the firstend-to-end connection using a LTE network becomes unsatisfactory forsome time, network device 101 can rely on the second end-to-endconnection using a 3G network for transferring data, or vice versa.

In one of the embodiments, a network adapter's correspondingconfiguration changes when a first condition is satisfied. For example,a first configuration can be used to restrict network adapter 106 to usea first communication technology, and a second configuration can be usedto restrict network adapter 106 to use a second communicationtechnology. Network adapter 106 is configured with the firstconfiguration when the first condition is not satisfied, and thereforenetwork adapter 106 uses the first communication technology to transmitand/or receive data. When the first condition is satisfied, networkadapter 106 is configured with the second configuration, and thereforenetwork adapter 106 uses the second communication technology. Forillustration purposes, a first condition is satisfied when an end-to-endconnection is established through network adapter 106. Therefore, whenan end-to-end connection is established through network adapter 106,network adapter 106 is configured with the second configuration thatallows it to use LTE technology. Alternatively, when there is noend-to-end connection established through network adapter 106, networkadapter 106 is configured with the first configuration that causes it touse IEEE 802.11 technology.

In one of the embodiments, the first condition may or may not apply toall network adapters being used for transmitting and/or receiving data.When the first condition does apply to other network adapters being usedfor transmitting and/or receiving data, each network adapter can beconfigured to use specific communication technologies when the firstcondition is satisfied or when the first condition is not satisfied. Forexample, network adapters 106 and 107 are selected by processing unit102 for transmitting and/or receiving data, and the first conditionapplies to both network adapters 106 and 107. The first condition issatisfied when an end-to-end connection is established. Network adapter106 is configured to use LTE technology when an end-to-end connection isestablished through network adapter 106, and IEEE 802.11 technology whenan end-to-end connection is not established through network adapter 106.On the other hand, network adapter 107 is configured to use 3Gtechnology when an end-to-end connection is established through networkadapter 107, and Bluetooth technology when an end-to-end connection isnot established through network adapter 107.

FIG. 5 is a flowchart illustrating a process of using a communicationtechnology for transmitting and/or receiving data according to one ofthe embodiments of the present invention. Network adapter 106 isconfigured according to its corresponding configuration in step 501. Instep 502, processing unit 102 determines whether a first condition issatisfied. If the first condition is not satisfied, a firstcommunication technology is used for transmitting and/or receiving datathrough network adapter 106 in step 503. If the first condition issatisfied, a second communication technology is used for transmittingand/or receiving data through network adapter 106 in step 504.

In one of the embodiments, viewing in conjunction with FIG. 5, networkdevice 101 establishes an end-to-end connection with another networkdevice through network adapter 106. The first condition in step 502 issatisfied if an end-to-end connection is established through networkadapter 106. The first condition is not satisfied if an end-to-endconnection is not established through network adapter 106. Networkadapter 106 is configured with a configuration that restricts it tousing a first communication technology when an end-to-end connection isnot established, and restricts it to use a second communicationtechnology when an end-to-end connection is established through networkadapter 106, as illustrated in FIG. 5. The end-to-end connection may bea VPN connection. For example, the first communication technology isW-CDMA, and the second communication technology is LTE. Network adapter106 is configured with a corresponding configuration in step 501. Thecorresponding configuration restricts network adapter 106 to use W-CDMAto transmit and/or receive data when there is no end-to-end connection.Therefore, when processing unit 102 determines in step 502 that anend-to-end connection is not established, data is transmitted and/orreceived through network adapter 106 using W-CDMA in step 503. Then,when processing unit 102 decides to establish an end-to-end connectionthrough network adapter 106, the corresponding configuration restrictsnetwork adapter 106 to use LTE when data is transmitted and/or receivedthrough the end-to-end connection in step 504. This facilitates using aspecific communication technology, like LTE, for an end-to-endconnection and another communication technology, like W-CDMA, for allother purposes. When the user or administrator establishes an end-to-endconnection, such as a VPN connection, it would be desirable that theaccess network of the end-to-end connection is highly reliable and fast,as VPN connections are widely used to connect geographically disparateoffices of organizations to be securely connected to each other. Forexample, in a certain geographical region, using LTE technology totransmit and/or receive data through network adapter 106 ensures thatthe end-to-end connection is more reliable and faster compared to usingmost other communication technologies. Thus, when network adapter 106does not establish an end-to-end connection, and the user oradministrator does not need the connection to be fast, it could be moreeconomically viable to use W-CDMA instead of LTE because using LTEtechnology is more expensive than using W-CDMA. However, while switchingback to W-CDMA when network adapter 106 disconnects the end-to-endconnection, initializing the W-CDMA network may cause a delay.

In one of the embodiments, viewing in conjunction with FIG. 5, the firstcondition is satisfied when network device 101 is being used in acertain geographical location, such as New York. The first condition isnot satisfied when network device 101 is being used in any locationother than New York. Therefore, in step 501, network adapter 106 isconfigured with configuration that restricts it to use a firstcommunication technology when network device 101 is used outside NewYork, and restricts it to use a second communication technology whennetwork device 101 is used inside New York. For example, the firstcommunication technology is IEEE 802.11 and the second communicationtechnology is LTE. In step 502, processing unit 102 determines thegeographical location of network device 101. If network device 101 isnot in New York, network adapter 106 uses IEEE 802.11 technology andconnects to an accessible Wi-Fi network for transmitting and/orreceiving data in step 503. If network device 101 is being used in NewYork, network adapter uses LTE technology and connects to an accessibleLTE network for transmitting and/or receiving data in step 504. In onevariant, a group of geographical locations are defined. The firstcondition is satisfied if network device 101 is in any one of the groupof geographical locations. For example, the group of geographicallocations includes New York and San Francisco. Therefore, when networkdevice 101 is in New York or San Francisco, the first condition issatisfied, and network adapter 106 uses LTE.

In one of the embodiments of the present invention, a network adapter isconfigured to use Bluetooth version 3.0 or above. In Bluetooth 3.0specification, a low speed connection is used by the network adapteruntil high speed is required for data transfer. When a high speed datatransfer is required, the network adapter switches to using a high speedconnection that utilizes IEEE 802.11 technology. In this case, althoughthe network adapter is configured to use Bluetooth, it is allowed toswitch to IEEE 802.11 when required. Therefore the network adapter isnot restricted to use Bluetooth by its configuration.

FIG. 4 illustrates network adapters of a network device, such as networkdevice 101, according to one of the embodiments. Network device 101comprises network adapters 411, 412, 413, 414, 415, and 416. A firstgroup of network adapters is selected from network adapters 411, 412,413, 414, 415, and 416 and data is transmitted through the first groupof network adapters. The first group of network adapters is selectedaccording to at least one condition. In one of the embodiments, a secondgroup of network adapters is selected from network adapters 411, 412,413, 414, 415, and 416 and data is received through the second group ofnetwork adapters. The second group of network adapters is selectedaccording to at least one condition. The first group of network adaptersand the second group of network adapters may or may not comprise thesame network adapters. Network device 101 transmits data through thefirst group of network adapters according to one or more datadistribution techniques. Network adapters 411, 412, 413, 414, 415 and416 network adapters 106, 107, and 108 according to one of theembodiments.

In one of the embodiments, network adapters 411, 412 and 413 belong to afirst group of network adapters, and network adapters 414, 415 and 416belong to a second group of network adapters. When network adapter 411is configured to use a first communication technology for transmittingand/or receiving data, but an access network using the firstcommunication technology is not accessible through network adapter 411,then network adapter 412 is used for transmitting and/or receiving data.Network adapter 412 is also configured to use the first communicationtechnology and an access network using the first communicationtechnology is accessible through network adapter 412. This ensures thatnetwork device 101 is using the first communication technology throughat least one of its network adapters for transmitting and/or receivingdata. Therefore, network device 101 continues using the samecommunication technology to transmit and/or receive data, even though itis using a different network adapter. This is beneficial because, insome cases, the initialization time required when switching from onecommunication technology to another communication technology issignificantly high, and thus the performance of network device 101 willbe affected negatively. On the contrary, switching from network adapter411 to network adapter 412 might not affect the performance of networkdevice 101 so adversely. Furthermore, some communication technologiesprovide better performance compared to other communication technologiesin certain environments, and therefore it is desirable that networkdevice 101 continues to use the first communication technology even if adifferent network adapter is used.

In an example, for illustration purpose, network adapter 411 and networkadapter 412 is capable of using a plurality of communicationtechnologies. Network adapters 411 and 412 are configured to use LTE.Network device 101 transmits data through network adapter 411 using afirst LTE network. When network adapter 411 reports at least one errorthat causes it to be disconnected from the first LTE network, networkdevice 101 starts transmitting data through network adapter 412 usingthe first LTE network or a second LTE network.

In another example, a Wi-Fi network is available for network adapter 411to connect to. Since network adapter 411 is configured to use LTE,network adapter 411 does not use the Wi-Fi network to transmit data evenwhen the Wi-Fi network is accessible through network adapter 411. Thebenefit of restricting network adapter 411 to using LTE networks is thatin most cases, LTE provides higher network coverage, lower interference,higher speed, and better network performance compared to Wi-Fi ingeneral. In many scenarios. Wi-Fi networks have small coverage and theinterference is significantly high when compared to LTE networks.

Alternatively, when an access network using the first communicationtechnology is not accessible through network adapter 411, network device101 uses network adapter 414 belonging to the second group of networkadapters for transmitting and/or receiving data according to theconfiguration of network adapter 414. This is beneficial because it islikely that when an access network using the first communicationtechnology is not accessible through one network adapter of a networkdevice, the access network using the first communication technology isalso not accessible through other network adapters of the networkdevice. Therefore, when an access network using the first communicationtechnology is not accessible through network adapter 411, network device101 does not waste time searching for another network adapter which canconnect to an access network using the first communication technology.Network device 101 instead starts using network adapter 414 that isconfigured to use another communication technology. Therefore, whennetwork adapter 411 reports to processing unit 102 that the LTE networkis unavailable or is unstable, network device 101 does not use networkadapter 412 to connect to the same LTE network. Network adapter 414 isused to connect to a different LTE network or a 3G network, or a Wi-Finetwork according to the configuration of network adapter 412.

In one of the embodiments of the present invention, network adapters411, 412, 413, 414, 415, and 416 can be grouped into one or more groupsaccording to a classification, or manual grouping by the user of networkdevice 101. In one example, network adapters 411, 412, and 413 aregrouped into a first group of network adapters. Similarly, networkadapters 414, 415 and 416 are grouped into a second group of networkadapters. In some embodiments, the first group of network adapterscomprises primary network adapters and the second group of networkadapters comprises secondary network adapters. Therefore networkadapters 414, 415, and 416 are secondary network adapters correspondingto network adapters 411, 412 and 413 respectively. If one or more ofnetwork adapter 411, 412 or 413 fails, network device 101 starts usingnetwork adapter 414, 415, or 416 respectively. In another embodiment,network adapters 411 and 414 are grouped into a first group of networkadapters. Similarly, network adapters 412 and 415 are grouped into asecond group of network adapters, and network adapters 413 and 416 aregrouped into a third group of network adapters. Alternatively, networkadapters 411, 412, 413, 414, 415 and 416 can be grouped into many groupsby classification according to the user's preferences. Classificationcan be conducted based on whether or not certain conditions aresatisfied by the network adapters, wherein the conditions are selectedfrom a group consisting of network connectivity, performance metric,service provider metric, location metric, time metric, price metric,security metric, user metric, Internet Protocol address metric,communication protocol metric, communication technology metric,application metric, device metric. The conditions can be retrievedlocally from secondary storage 105 or remotely from a remote server.

Network adapters 411, 412, 413, 414, 415, and 416 are capable of using aplurality of communication technologies. In a preferred embodiment, thecommunication technologies are wireless communication technologies.Hence the hardware of the network adapters makes them capable of usingthe plurality of communication technologies.

In one of the embodiments, a network adapter can be identified by aglobally unique identifier that could be used for authentication whileconnecting to a certain access network. The globally unique identifier,frequently termed an International Mobile Subscriber Identity (IMSI), iscontained in a wireless identity module (WIM) such as a SubscriberIdentity Module (SIM) card, a Universal Subscriber Identity Module(USIM), a smart-card, or any other type of electronic module that cancontain a globally unique identifier and can be utilized by a networkadapter.

FIG. 3 illustrates a process of selecting a first group of networkadapters for transmitting data at a network device, such as networkdevice 101, according to one of the embodiments. In step 301, processingunit 102 determines whether a first network adapter, such as networkadapter 106, satisfies a first condition. Network adapter 106 is notselected to be in the first group of network adapters in step 304 if thefirst condition is not satisfied and the process of FIG. 3 is repeatedfor another network adapter, such as network adapter 107. If the firstcondition is satisfied by network adapter 106, network adapter 106 isselected to be in the first group of network adapters in step 302. Instep 303, packets are transmitted and/or received through networkadapter 106 because it belongs to the first group of network adapters.Similarly, the process of FIG. 3 is carried out for all of the networkadapters of network device 101 to determine whether they can be selectedto belong to the first group of network adapters. Network device 101uses the first group of network adapters for transmitting and/orreceiving data because the first group of network adapters satisfies thefirst condition. In one variant, more than one condition should besatisfied by a network adapter in order to be selected to belong to thefirst group of network adapters.

In one of the embodiments, network device 101 uses a first group and asecond group of network adapters for transmitting and receiving datarespectively. Processing unit 102 selects the first group and the secondgroup of network adapters from the plurality of network adapters ofnetwork device 101 based on at least one condition. The at least onecondition is selected from a group consisting of performance metric,service provider, location, time, usage price, security, user identity,Internet Protocol (IP) address range, communication protocol,communication technology, application, and device. The performancemetric can be based on one or more of throughput, error rates, packetlatency, packet jitter, symbol jitter, quality of service, bandwidth,bit error rate, packet error rate, frame error rate, dropped packetrate, queuing delay, round trip time, capacity, signal level,interference level, bandwidth delay product, handoff delay time,signal-to-interface ratio, and signal-to-noise ratio. The at least onecondition is stored in secondary storage 105.

For example, viewing in conjunction with FIG. 3, the condition in step301 is based on the dropped packet rate. If the dropped packet rate atnetwork adapter 106 is equal to or more than a predefined threshold, thecondition is not met, and network adapter 106 does not belong to thefirst group of network adapters. If the dropped packet rate is less thanthe predefined threshold, network adapter 106 belongs to the first groupof network adapters and can be used to transmit data. Using conditionsto select a first group and a second group of network adapters gives theuser the benefit of being able to choose network adapters according tothe user's preferences. Different users may have different preferences.Therefore, instead of the user choosing network adapters manually,processing unit 102 chooses network adapters automatically according tothe user's preferences.

The first group and the second group of network adapters may or may notcomprise the same network adapters. Network adapters are selected basedon conditions set by the user or administrator of network device 101according to their preference. For example, if the user wants to monitorcosts, a condition for usage price is set.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is an illustrative block diagram of a network device according toone of the embodiments of the present invention;

FIG. 2 illustrates a process of configuring a network adapter accordingto one of the embodiments;

FIG. 3 illustrates a process of selecting a first group of networkadapters for transmitting data at a network device according to one ofthe embodiments;

FIG. 4 illustrates network adapters of a network device according to oneof the embodiments;

FIG. 5 is a flowchart illustrating a process of using a communicationtechnology for transmitting and/or receiving data according to one ofthe embodiments of the present invention;

The invention claimed is:
 1. A method of at least one of, transmitting and receiving data at a network device, the network device including a plurality of network adapters, the method comprising: (a) classifying the plurality of network adapters into a first group of network adapters and a second group of network adapters according to a first condition; wherein the first group of network adapters comprises a first network adapter and the second group of network adapters comprises a second network adapter; wherein the first network adapter and the second network adapter are identified by a globally unique identifier; wherein the first condition is selected from a group consisting of performance metric, service provider, location, time, usage price, security, user identity, Internet Protocol (IP) address range, communication protocol, communication technology, application, and device; (b) retrieving configuration corresponding to each of the plurality of network adapters; wherein the configuration comprises the globally unique identifier of each of the plurality of network adapters; (c) determining a corresponding communication technology for each of the plurality of network adapters; wherein the corresponding communication technology allows the each of the plurality of network adapters to connect to a corresponding access network; wherein the first network adapter and the second network adapter are first configured to use a first communication technology; wherein when the first network adapter and the second network adapter are restricted to use the first communication technology even when networks corresponding to other communication technologies are available; (d) establishing end-to-end connections using at least two of the plurality of network adapters; (e) if a second condition is satisfied: transmitting and receiving data through the first group of network adapters using the corresponding communications technology of each of the first group of network adapters; if the second condition is not satisfied: transmitting and receiving data through the second group of network adapters using a corresponding communications technology of each of the second group of network adapters; wherein the second condition is satisfied if at least one end-to-end connection is established through the first group of network adapters; wherein the data is transmitted and received through an aggregated end-to-end connection and wherein the aggregated end-to-end connection comprises a plurality of end-to-end connections established through at least one of the first group of network adapters; (f) when an access network using the first communication technology is not accessible through the first network adapter: transmitting and receiving data through the second network adapter using the first communication technology instead of transmitting and receiving data through the first network adapter; (g) when one of, the access network using the first communication technology becomes accessible again through the first network adapter, or the first network adapter connects to an another access network using the first communication technology, starting to use the first network adapter for transmitting and receiving data; (h) when the first condition is based on location and the first condition is satisfied when the network device is used in a first location: restricting the network device to use a third communication technology when the network device is in the first geographical area; and restricting the network device to use the first communication technology when the network device is outside the first geographical area; wherein the first geographical location range has at least one network using the second communication technology; wherein the each network adapter of the first group of network adapters is configured by a configuration corresponding to the each network adapter; wherein when the data is latency sensitive, a communication technology with a low latency is selected as the first communication technology; and wherein the corresponding communication technology is a wireless communication technology.
 2. The method of claim 1, wherein the first network adapter and the second network adapter use a default communication technology before establishing the end-to-end connection.
 3. The method of claim 1, wherein the first network adapter is configured to use a second communication technology when no Virtual Private Network (VPN) connection is established through the first network adapter.
 4. The method of claim 1, wherein the first group of network adapters comprises primary network adapters and the second group of network adapters comprises secondary network adapters.
 5. The method of claim 1, wherein the end-to-end connections are implemented using one of, Transmission Control Protocol (TCP/IP), User Datagram Protocol (UDP/IP), IPSec or other Virtual Private Network (VPN) technologies.
 6. The method of claim 1, wherein the performance metric is based on at least one of throughput, error rates, packet latency, packet jitter, symbol jitter, quality of service, bandwidth, bit error rate, packet error rate, frame error rate, dropped packet rate, queuing delay, round trip time, capacity, signal level, interference level, bandwidth delay product, handoff delay time, signal-to-interface ratio, and signal-to-noise ratio.
 7. The method of claim 1, wherein the corresponding communication technology is selected according to at least one criterion; wherein the at least one criterion is selected from a group consisting of data type, traffic pattern, port number, application, and protocol.
 8. The method of claim 1, wherein all of the first group of network adapters are configured to use the first communication technology.
 9. The method of claim 1, wherein the first group of network adapters comprises a third network adapter; wherein the third network adapter uses the first communication technology for transmitting data and a second communication technology for receiving data.
 10. A network device configured to at least one of, transmit and receive data, the network device comprising a plurality of network adapters; at least one processing unit; at least one main memory; at least one secondary storage storing program instructions executable by the at least one processing unit for: (a) classifying the plurality of network adapters into a first group of network adapters and a second group of network adapters according to a first condition; wherein the first group of network adapters comprises a first network adapter and the second group of network adapters comprises a second network adapter; wherein the first network adapter and the second network adapter are identified by a globally unique identifier; wherein the first condition is selected from a group consisting of performance metric, service provider, location, time, usage price, security, user identity, Internet Protocol (IP) address range, communication protocol, communication technology, application, and device; (b) retrieving configuration corresponding to each of the plurality of network adapters; wherein the configuration comprises the globally unique identifier of each of the plurality of network adapters; (c) determining a corresponding communication technology for each of the plurality of network adapters; wherein the corresponding communication technology allows the each of the plurality of network adapters to connect to a corresponding access network; wherein the first network adapter and the second network adapter are first configured to use a first communication technology; wherein when the first network adapter and the second network adapter are restricted to use the first communication technology even when networks corresponding to other communication technologies are available; (d) establishing end-to-end connections using at least two of the plurality of network adapters; (e) if a second condition is satisfied: transmitting and receiving data through the first group of network adapters using the corresponding communications technology of each of the first group of network adapters; if the second condition is not satisfied: transmitting and receiving data through the second group of network adapters using a corresponding communications technology of each of the second group of network adapters; wherein the second condition is satisfied if at least one end-to-end connection is established through the first group of network adapters; wherein the data is transmitted and received through an aggregated end-to-end connection and wherein the aggregated end-to-end connection comprising a plurality of end-to-end connections established through at least one of the first group of network adapters; (f) when an access network using the first communication technology is not accessible through the first network adapter: transmitting and receiving data through the second network adapter using the first communication technology instead of transmitting and receiving data through the first network adapter; (g) when the access network using the first communication technology becomes accessible again through the first network adapter, or the first network adapter connects to another access network using the first communication technology, starting to use the first network adapter for transmitting and receiving data; (h) when the first condition is based on location and the first condition is satisfied when the network device is used in a first location: restricting the network device to use a third communication technology when the network device is in a first geographical area; and restricting the network device to use the first communication technology when the network device is outside the first geographical area; wherein a first geographical location range has at least one network using a second communication technology; wherein each network adapter of the first group of network adapters is configured by a configuration corresponding to the each network adapter; wherein when the data is latency sensitive, a communication technology with a low latency is selected as the first communication technology; and wherein the corresponding communication technology is a wireless communication technology.
 11. The network device of claim 10, wherein the first network adapter and the second network adapter use a default communication technology before establishing the end-to-end connection.
 12. The network device of claim 10, wherein the first network adapter is configured to use a second communication technology when no Virtual Private Network (VPN) connection is established through the first network adapter.
 13. The network device of claim 12, wherein the first condition is satisfied if the network device is being used at a first geographical location.
 14. The network device of claim 10, wherein the end-to-end connections are implemented using Transmission Control Protocol (TCP/IP), User Datagram Protocol (UDP/IP), IPSec or other Virtual Private Network (VPN) technologies.
 15. The network device of claim 10, wherein the performance metric is based on at least one of throughput, error rates, packet latency, packet jitter, symbol jitter, quality of service, bandwidth, bit error rate, packet error rate, frame error rate, dropped packet rate, queuing delay, round trip time, capacity, signal level, interference level, bandwidth delay product, handoff delay time, signal-to-interface ratio, and signal-to-noise ratio.
 16. The network device of claim 10, wherein the corresponding communication technology is selected according to at least one criterion; wherein the at least one criterion is selected from a group consisting of data type, traffic pattern, port number, application, and protocol.
 17. The network device of claim 10, wherein all of the first group of network adapters are configured to use the first communication technology.
 18. The network device of claim 10, wherein the first group of network adapters comprises a third network adapter; wherein the third network adapter uses the first communication technology for transmitting data and a second communication technology for receiving data. 